package com.css.openapi.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 基础通用订单信息表(JctyDdxx)表实体类
 *
 * @author xiaolongwei
 * @since 2024-12-09 15:56:27
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("zfjkp_jcty_ddxx")
public class JctyDdxx implements OrderZxInterface {

    /**
     * 订单id
     */
    @TableId(value = "DDID", type = IdType.INPUT)
    private String ddid;

    /**
     * 交易号码
     */
    @TableField(value = "JYNO")
    private String jyno;

    /**
     * 订单编号
     */
    @TableField(value = "ORDER_NO")
    private String orderNo;

    /**
     * 商户号
     */
    @TableField(value = "SHH")
    private String shh;

    /**
     * 终端号
     */
    @TableField(value = "zdh")
    private String zdh;

    /**
     * 销售方税号
     */
    @TableField(value = "XSFSH")
    private String xsfsh;

    /**
     * 销售方纳税人名称
     */
    @TableField(value = "XSFNSRMC")
    private String xsfnsrmc;

    /**
     * 购方是否是自然人（Y:是；N:否）
     */
    @TableField(value = "GFZRR")
    private String gfzrr;

    /**
     * 购买方电话
     */
    @TableField(value = "GMFDH")
    private String gmfdh;

    /**
     * 购买方地址
     */
    @TableField(value = "GMFDZ")
    private String gmfdz;

    /**
     * 购买方开户行
     */
    @TableField(value = "GMFKHH")
    private String gmfkhh;

    /**
     * 购买方名称
     */
    @TableField(value = "GMFMC")
    private String gmfmc;

    /**
     * 购买方纳税人识别号
     */
    @TableField(value = "GMFNSRSBH")
    private String gmfnsrsbh;

    /**
     * 购买方银行账号
     */
    @TableField(value = "GMFYHZH")
    private String gmfyhzh;

    /**
     * 价税合计
     */
    @TableField(value = "JSHJ")
    private BigDecimal jshj;

    /**
     * 金额
     */
    @TableField(value = "JE")
    private BigDecimal je;

    /**
     * 税额
     */
    @TableField(value = "SE")
    private BigDecimal se;

    /**
     * 订单类型代码
     */
    @TableField(value = "DDLX_DM")
    private String ddlxDm;

    /**
     * 订单时间(yyyy-MM-dd HH:mm:ss)
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "DDSJ")
    private LocalDateTime ddsj;

    /**
     * 订单状态 (0：待支付1:支付成功，2:退款)
     */
    @TableField(value = "ORDER_STATUS")
    private Integer orderStatus;

    /**
     * 发票开具状态(1：蓝票开具成功，2：蓝票开具失败，3：红票开具成功，4：红票开具失败)
     */
    @TableField(value = "KP_STATUS")
    private Integer kpStatus;

    /**
     * 银行交易流水号
     */
    @TableField(value = "SEQ_ID")
    private String seqId;

    /**
     * 交易通知地址
     */
    @TableField(value = "JY_NOTIFY_URL")
    private String jyNotifyUrl;

    /**
     * 开票通知地址
     */
    @TableField(value = "KP_NOTIFY_URL")
    private String kpNotifyUrl;

    /**
     * 开票通知结果（0：待通知，1：已通知，2：通知失败）
     */
    @TableField(value = "KP_NOTIFY_JG")
    private Integer kpNotifyJg;

    /**
     * 交易通知结果（0：待通知，1：已通知，2：通知失败）
     */
    @TableField(value = "JY_NOTIFY_JG")
    private Integer jyNotifyJg;

    /**
     * 开票通知返回信息
     */
    @TableField(value = "KP_NOTIFY_MSG")
    private String kpNotifyMsg;

    /**
     * 交易通知返回信息
     */
    @TableField(value = "JY_NOTYFY_MSG")
    private String jyNotyfyMsg;

    /**
     * 备注
     */
    @TableField(value = "BZ")
    private String bz;

    /**
     * 发票票种（01:数电专，02：数电普）
     */
    @TableField(value = "FPPZ")
    private String fppz;

    /**
     * 删除标记（0：未删除 1已删除）
     */
    @TableLogic(value = "0", delval = "1")
    @TableField(value = "SCBJ")
    private String scbj;

    /**
     * 创建人
     */
    @TableField(value = "CJR")
    private String cjr;

    /**
     * 修改人
     */
    @TableField(value = "XGR")
    private String xgr;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "CJSJ")
    private LocalDateTime cjsj;

    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "XGSJ")
    private LocalDateTime xgsj;

}
